Virtual universal remote control

ABSTRACT

A method for providing a virtual, universal remote control feature includes displaying a virtual remote interface for an electronic device. A user interaction with an element of the virtual remote interface is detected. The virtual remote interface element is mapped to a device-function code. The device-function code is provided to a code transmitter. The device-function code corresponds to a control command associated with the electronic device.

BACKGROUND

1. Field of the Disclosure

The present disclosure relates to remote control devices and, moreparticularly, universal remote control devices.

2. Description of the Related Art

Remote control devices enable remote operation of machines. Conventionalremote control devices are ubiquitous in the field of consumerelectronics. Generally speaking, such devices are characterized by alarge number of function buttons or other types of control elementswhere at least some of the buttons correspond to device-specificfunctions, device specific device-function codes, or both.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of selected elements of an embodiment of asystem for implementing virtual universal remote control of one or moreelectronic devices;

FIG. 2 is a block diagram of selected elements of an embodiment of adisplay controller suitable for use in a virtual universal remotecontrol system such as the system of FIG. 1;

FIG. 3 illustrates selected aspects of an embodiment of a deviceselection interface suitable for use in a virtual universal remotecontrol system such as the system of FIG. 1;

FIG. 4 illustrates selected aspects of an embodiment of a device tablesuitable for use in generating the device selection interface of FIG. 3;

FIG. 5 illustrates selected aspects of an embodiment of a device profilesuitable for use in the virtual universal remote control system of FIG.1;

FIG. 6 illustrates selected elements of the virtual universal remotecontrol system of FIG. 1 including elements emphasizing a method fornetworked updating firmware or software of a display controller such asthe display controller of FIG. 2;

FIG. 7 is a flow diagram illustrating selected processes in anembodiment of a method enabling a virtual universal remote controlfeature;

FIG. 8 is a flow diagram illustrating selected processes in anembodiment of a method enabling a virtual universal remote controlfeature;

FIG. 9 is a flow diagram illustrating selected processes in anembodiment of a method enabling a virtual universal remote controlfeature; and

FIG. 10 is a flow diagram illustrating selected processes in anembodiment of a method enabling a virtual universal remote controlfeature.

DESCRIPTION OF EXEMPLARY EMBODIMENTS

Universal remote controls for consumer electronic equipment enableconsumers to control multiple devices with a single device—functionalitythat consistently rates as one of the most desired features on a remotecontrol. Conventional universal remote controls, however, frequentlyundermine their universal characteristics with over-implemented,device-specific functionality in an effort to be all things to allusers.

Disclosed herein is a universal remote control system that accommodatesdevice specialty with a remote control device that is universal from anoperational and “look and feel” perspective. In some embodiments, devicespecific functionality is embedded in virtual interfaces that arepresented to the user on a display screen while the user-controlledremote control hardware itself is universal with respect to all devicesand device types. Thus, disclosed embodiments may employ a limitedfunction remote control device in conjunction with software-implementedvirtual user interfaces that support any degree of devicespecialization.

In some embodiments, for example, the remote control device itself mayhave a tightly controlled and limited number of control elements. Anexemplary remote control might, for example, employ five or fewercontrol elements. The control elements in such embodiments might belimited to control elements for controlling the location of a cursor orotherwise highlighting a control element of a virtual interface and acontrol element for selecting or otherwise asserting a highlightedcontrol element. Such functionality might be achieved, for example, witha select button and a scroll wheel or 4-way direction controller.

The limited input remote control device may be used in conjunction witha software-based or virtual universal remote control (VURC) applicationthat runs on a set top box (STB) or other type of customer premiseequipment (CPE). The VURC application may be configured to display avirtual remote device interface (VRDI) on a display device based oninformation contained in a device profile. The VURC application maysupport profiles for a plurality of different devices or device types.

The CPE may include a network connection enabling it to access anupdated library of codes thereby allowing the control of devices thatare manufactured at a later time. In some embodiments, a device profilemay encompass features of multiple devices whereby a single remotecontrol action could activate multiple controls to complete a sequenceof tasks (e.g., dimming the lights, switching audio feeds, muting thephone, and playing my favorite playlist all with the touch of a singlebutton). The VURC application may retrieve device-function codes andother updates to device profiles from a device-specific remote control,i.e., a remote control dedicated to the device.

In the following description, details are set forth by way of example tofacilitate discussion of the disclosed subject matter. It should beapparent to a person of ordinary skill in the field, however, that thedisclosed embodiments are exemplary and not exhaustive of all possibleembodiments. Throughout this disclosure, a hyphenated form of areference numeral refers to a specific instance of an element and theun-hyphenated form of the reference numeral refers to the elementgenerically or collectively. Thus, for example, widget 12-1 refers to aninstance of a widget class, which may be referred to collectively aswidgets 12 and any one of which may be referred to generically as awidget 12.

Turning now to the drawings, FIG. 1 depicts selected elements forimplementing an embodiment of a VURC system 100. The embodiment of VURCsystem 100 depicted in FIG. 1 includes a VURC device 110, a displaycontroller 120, a display device 130, and a code transmitter 150.Although these elements are depicted as distinct elements in FIG. 1, twoor more of the elements depicted in FIG. 1 may be integrated orotherwise provided within a single physical device. For example, displaycontroller 120 and display device 130 may be integrated in a singleunit, display controller 120 and code transmitter 150 may be integratedin a single unit, and so forth.

In the depicted embodiment, VURC device 110 is configured with a reducedset of function elements. For example, in some embodiments of VURCdevice 110, the buttons or other types of control elements may belimited to a set of two or more directional elements 112 and a selectionelement 114 for asserting or otherwise invoking a command. ImplementingVURC device 110 in this manner beneficially reduces the amount ofhardware and software encoding that VURC device 110 is required to havethereby likely reducing its manufacturing cost.

In the embodiment depicted in FIG. 1, remote control functionality issupported by a software-implemented interface, depicted and identifiedin FIG. 1 as VRDI 140, that is presented to the user via display device130. A VURC application, depicted in FIG. 2, generates VRDIs such asVRDI 140 from information stored in a set of one or more devicesprofiles 160, three of which are depicted as device profiles 160-1,160-2, and 160-3 in FIG. 1.

A user or viewer of display device 130 employs VURC device 110 totransmit direction and selection signals to display controller 120 andthereby interact with a VRDI 140 that corresponds to a particularelectronic device. When the user asserts a control element 142 VRDI 140,the VURC application consults a device profile 160 corresponding to theapplicable electronic device to retrieve a device-function codecorresponding to the asserted control element. The VURC application thensends the device-function code to code transmitter 150, which, asdepicted in FIG. 1, is connected to or otherwise in operablecommunication with display controller 120. Although control element 142is shown as being associated with a mute button in FIG. 1, controlelement 142 may be associated with any of the elements of VRDI 140.

Code transmitter 150 is operable to transmit signals that areinterpretable by remotely controllable electronic devices. The wirelesssignals transmitted by code transmitter 150 may include adevice-function code. The device-function code may correspond to a codefor issuing, controlling, modifying, or otherwise affecting a command,feature, action, or setting of the electronic device. Code transmitter150 may transmit signals to the controlled electronic devices wirelesslyor otherwise. The signals may comply with any of various standards,protocols, and/or formats including, as examples, the 801.11 family ofstandards, commonly referred to as WiFi standards, Bluetooth, infrared(IR), radio frequency (RF), and so forth.

Turning now to FIG. 2, a block diagram illustrating selected elements ofan embodiment of a display controller 120 is presented. Displaycontroller 120 may be implemented within a STB or other suitable devicefor receiving multimedia content from an access network, InternetProtocol (IP)-based or otherwise, and processing the received content tomake it suitable as output to a viewer of a television or other type ofmultimedia or video display device. In these embodiments, displaycontroller 120 may include elements of or be connected to a networkgateway (not depicted), such as a digital subscriber line or cablemodem, that may provide firewall, routing, and/or network translationfunctionality. As depicted in FIG. 2, display controller 120 includes aprocessor 201 and computer readable storage 210 that is accessible toprocessor 201 via a bus 209. A network interface 204, a local wirelessreceiver 208, and a display adapter 206 are also shown operablyconnected to bus 209.

Network interface 204 enables display controller 120 to communicate withan external network such as the access network (not depicted) referredto above. Local wireless receiver 208 is operable to detect andinterpret or otherwise process signals from a remote control device suchas the VURC device 110 depicted in FIG. 1. Local wireless receive 208may implement any of a variety of pervasive local wireless technologiesincluding, as examples, WiFi, Bluetooth, IR, and RF technology. Displayadapter 206 is operable to buffer and process multimedia content andother types of image data for presentation to display device 130.Display adapter 206 may include elements of a video decoder, an audiodecoder, or both. Display adapter 206 may further include pre-decodingresources for converting content received from an access network to astream that is suitable for an MPEG or other type of video decoder.

Storage 210 encompasses various suitable types of computer readablemedia including persistent as well as volatile storage elementsincluding, as examples, hard disk or magnetic memory, solid statedrives, flash memory, read only memory, removable memory media such ascompact discs and digital versatile discs, dynamic read access memory,static read access memory, and other suitable storage types, orcombinations thereof As depicted in FIG. 2, storage 210 includes a firstportion identified as program memory 220 and a second portion identifiedas data memory 230. The identification of separate instruction and datamemory in FIG. 2 is a functional distinction intended for purposes ofclarity and does not mandate distinct physical storage elements.

In the implementation depicted in FIG. 2, program memory 220 of storage210 includes a VURC application 212 and a remote control (RC) module214. Data memory 230 as depicted includes a data structure identified asdevice table 232 and a set of one or more data structures identified asdevice profiles 160-1 . . . 160-n, where n is the number of deviceprofiles. In some embodiments, device profiles 160 correspond torespective remotely controllable electronic devices. The remotelycontrollable electronic devices supported by VURC application 212 mayencompass any of a variety of consumer, home, and other types ofelectronic devices including, as examples, televisions, STBs,amplifiers, pre-amplifiers, speakers, DVD players, projectors, lightswitches, and so forth.

The user of VURC device 110 may assert functional elements 112 or 114 oranother functional element not depicted in FIG. 1. In some embodiments,assertion of VURC device functional elements 112, 114 at a time whendisplay controller 120 is outputting content to display 130 may causeVURC application 212 to generate a user interface on display device 130.The user interface might be a device table that lists a set of two ormore remotely controllable electronic devices supported by VURC system100 and VURC application 212. An exemplary of such interface is depictedin FIG. 3 as device selection interface 300. In the depicted embodiment,device selection interface 300 includes a list of entries 310 where eachentry 310 identifies a corresponding electronic device supported by VURCapplication 212. In some embodiments, the electronic devices listed indevice selection interface 300 represent the devices for which VURCsystem 100 has access to a device profile 160. An “edit list” entry 330in device selection interface 300 may enable the user to add or deletethe list of supported electronic devices.

In some embodiments, device selection interface 300 is generated by VURCapplication 212 in conjunction with device table 232 stored in datamemory 230 of data storage 210. An exemplary embodiment of VURC devicetable 232 is depicted in FIG. 4. As depicted in FIG. 4, VURC devicetable 232 includes a set of entries 410-1 through 410-n where each entry410 includes a set of three fields, namely, an electronic device field412, a wireless technology field 414, and a profile filename field 416.The electronic device field 412 may include a textual or graphicalindication of the electronic device that corresponds to the entry 410 intable 232. As depicted in FIG. 4, for example, the electronic devicefield 412 includes entries for a TV (entry 410-1), an STB (410-2), anamplifier (410-3), and so forth. VURC application 212 may use theentries in electronic device field 412 to populate the entries in deviceselection interface 300.

Wireless technology field 414 of device table 232 includes informationindicative of the wireless technology that the corresponding electronicdevice 412 employs. Profile filename 416 includes a file name or othertype of file descriptor indicative of a file containing a device profile160 or other information sufficient to generate a VRDI 140 such as theone depicted in FIG. 1. Although the depicted embodiment of device table232 is disclosed as including a specific set of fields and/or columns,other embodiments may include fewer, more, or different sets of fieldsand/or columns.

A user may employ VURC device 110 to cause device selection interface300 to be displayed on display device 130. The user may then use VURCdevice 110 to select the TV as the electronic device to be controlled byhighlighting and selecting the applicable entry 310 in device selectioninterface 300. In some embodiments, the user may generate the devicetable entry by asserting a predetermined set or sequence of selectioncontrol elements 112, 114 at any time during which the display device130 is displaying multimedia content. For example, in some embodiments,a user may access device selection interface 300 by asserting controlelement 114 of VURC device 110, without first asserting any othercontrol elements of VURC device 110, while the user is watching live orrecorded content.

In other embodiments, assertion of control element 114, or anotherpredetermined control element, may cause VURC system 100 to display themost recently accessed VRDI 140. In these embodiments, VRDI 140 mayinclude device table control element 144. If the user highlights andselects the device table control element 144 of a VRDI 140, VURCapplication 212 may generate device selection interface 300 for display.In these embodiments, VURC system 100 defaults to a VRDI 140 instead ofdevice selection interface 300 when the selection element 114 isasserted. Other embodiments may employ a different set of defaultprocedures and the default procedures applicable to any particularclient may be alterable so that, for example, the user would be able tochange the default assumptions.

Turning to FIG. 5, selected elements of an exemplary embodiment of adevice profile 160 are depicted. In the depicted embodiment, deviceprofile 160 corresponds to a particular electronic device. Deviceprofile 160 may include information enabling a properly configuredapplication program such as VURC application 212 to generate, fordisplay on a display such as display device 130, a virtual remotecontrol interface, e.g., a VRDI 140, that is suitable for use with acorresponding electronic device. The virtual remote control interfacemay have the appearance of a remote control device and may even have theappearance of a remote control device that is associated with theapplicable electronic device.

As depicted in FIG. 5, an exemplary device profile 160 is represented asa data table that includes a set of entries 510-1 to 510-n and a set offour fields or columns 512, 514, 516, and 518. Each entry 510 representsa control element to be depicted in a VRDI 140 (FIG. 1). Controlelements are the virtual equivalents of the buttons and other controlelements found on a conventional hand held remote control device.

The implementation of device profile 160 depicted in FIG. 5 includes anelement type field 512, a text field 514, a position field 516, and adevice-function code field 518. Other implementations of device profile160 may include more, fewer, and/or different fields. The element typefield 512 indicates the type of virtual control element to berepresented. The types of elements that may be represented in a VRDIinclude button elements, directional or arrow elements, up/down elementsincluding, e.g., for example, channel and volume up/down elements,slidable switches or toggle switches, and so forth. Text field 514 is anoptional field for providing text that may be displayed in the VRDI onor adjacent to the corresponding control element. Position field 516provides an indication of where the virtual control element will appearin within the VRDI.

Device-function code field 518 includes data that indicates adevice-function code for the applicable control element. In aconventional remote control, assertion of a button may cause the remotecontrol device to generate a device-function code signal that isrecognized by an STB, television, or other device. Device-function codesinclude codes that would be transmitted by a conventional remote controldevice when an applicable conventional control element is asserted. Thedevice-function code 518 depicted in FIG. 5 may be stored and/ordisplayed in a hexadecimal or other type of format.

Turning now to FIG. 6, selected elements of a network 600 are depictedto emphasize functionality for updating or otherwise maintaining theVURC functionality within display controller 120. As depicted in FIG. 6,display controller 120 is operably connected to an external network 602,which may include portions of a private or proprietary network, a publicnetwork, or both. A support server 604 is shown as being housed,located, or otherwise maintained by a device manufacturer 610. Devicemanufacturer 610 represents the manufacturer of a remotely controllableelectronic device. Although FIG. 6 depicts support server 604 housed inor operated by device manufacturer 610, support server 604 may behoused, maintained, and/or operated by a third party provider on behalfof device manufacturer 610.

Support server 604 as shown in FIG. 6, includes or has access to a datastructure identified as device profile update 620. As suggested by itsname, device profile update may include information indicative of new orimproved remote control functions supported by the electronic device.Device profile update 620 may include, for example, updateddevice-function codes, new device-function codes representing remotecontrol functions that were not previously available, and so forth.

In the embodiment depicted in FIG. 6, display controller 120 may, fromtime to time, “pull” device profile update 620 down from the network.Alternatively, support server 604 or a different server not depicted inFIG. 6, may “push” device profile update 620 out to display controller120 from time to time. Device profile update 620 may contain replacementdata for or new data to be added to an existing device profile 160. Byupdating an electronic device's profile 160, the configuration depictedin FIG. 6 or a suitable alternative may be employed to provide new VRDIs140 supporting newer or improved remote control functionality.

In some embodiments, VURC device profile 160 is accessed by a VURCapplication program such as VURC application 212 (FIG. 2) to render orotherwise produce a VRDI 140 (FIG. 1) on display device 130 (FIG. 1).VURC system 100 may include a VURC device profile 160 for each remotelycontrollable electronic device that is identified in VURC device table232 (FIG. 2) or otherwise supported by VURC system 100.

Some embodiments of the disclosed subject matter may be implemented asmethods or processes and some embodiments may be implemented as computerstorage media. In these embodiments, the disclosed subject matter mayinclude computer executable instructions stored on a computer readablestorage medium or a set of two or more storage media elements. Theseembodiments may be represented by flow diagrams that illustrate selectedsteps or operations performed.

FIG. 7 is a flow diagram depicting selected elements of a method 700 anda corresponding storage medium product for implementing virtual remotecontrol functionality. In the depicted embodiment, method 700 includesdisplaying (block 702) a virtual remote interface for an electronicdevice. A user interaction with an element of the virtual remoteinterface is then detected (block 704) and the virtual remote interfaceelement is mapped (block 706) to a device-function code using a table orother data structure such as a device profile 160. The device-functioncode is then provided (block 708) to a device-code transmitter, e.g.device code transmitter 150. The device-function code transmittedcorresponds to a control command associated with the electronic device.

FIG. 8 depicts selected elements of a method 800 for providing VURCfunctionality in the context of a multimedia content delivery network.Method 800 includes monitoring for (block 801) an initial signal from aremote control device. In response to detecting an initial signal, avirtual remote device selection interface is provided (block 802) to adisplay. The virtual remote device selection table may include aplurality of objects representing respective remotely controllableelectronic devices. Method 800 as shown further includes detecting(block 803) a selection of one of the plurality of objects and, inresponse thereto, providing (block 804) a VRDI for the respectiveelectronic device to the display. The VRDI may include a plurality ofselectable elements representing device-function codes for theelectronic device. In response to detecting (block 805) selection of oneof the selectable elements, method 800 as depicted further includessending (block 806) the respective device-function code to theelectronic device.

FIG. 9 depicts selected elements of a method 900 for providing virtual,universal remote control. Method 900 as shown in FIG. 9 includesdetecting (block 902) a select signal from a remote control device whilea VRDI is displaying. An element of a virtual remote interface indicatedby the select signal is determined (block 904) and a device-functioncode corresponding to the indicated element is determined (block 906).The device-function code is then provided (block 908) to a remotecontrol code transmitter.

FIG. 10 depicts selected elements of a service 1000 supporting ordelivering VURC functionality to an end user environment. Method 1000 asdepicted in FIG. 10 includes enabling (block 1002) the client device toacquire remote control profiles for a plurality of supported electronicdevices. A user is then enabled (block 1004) to select a remotelycontrollable electronic device from the plurality of supported devices.When the user selects (block 1005) a remotely controllable electronicdevice, a virtual remote control interface for the electronic device isdisplayed (block 1006). The virtual remote control interface may includea plurality of selectable control elements. In response to the userselecting (block 1007) an element, method 1000 then generates (block1008) a device-function code for a device function associated with theselected element.

To the maximum extent allowed by law, the scope of the presentdisclosure is to be determined by the broadest permissibleinterpretation of the following claims and their equivalents, and shallnot be restricted or limited to the specific embodiments described inthe foregoing detailed description.

1. A computer readable storage medium including computer executableinstructions for providing a virtual, universal remote control feature,the instructions comprising instructions to: display a virtual remoteinterface for an electronic device; detect a user interaction with anelement of the virtual remote interface; map the virtual remoteinterface element to a device-function code; and provide thedevice-function code to a code transmitter, wherein the device-functioncode corresponds to a control command associated with the electronicdevice.
 2. The computer readable storage media of claim 1, wherein theinstructions to detect the user interaction comprise instructions todetect signals transmitted by a virtual universal remote control device.3. The computer readable storage media of claim 2, wherein theinstructions to detect the signals comprise instructions to detect asignal selected from a limited set of remote control device signals. 4.The computer readable storage media of claim 3, wherein the limited setof signals consists of a set of direction signals and a selectionsignal.
 5. The computer readable storage media of claim 1, furthercomprising instructions to display a virtual remote device selectioninterface, wherein the virtual remote device selection interfaceincludes a set of selectable objects and where each of the objectscorresponds to an electronic device.
 6. The computer readable storagemedia of claim 1, wherein the virtual remote interface element is one ofa plurality of virtual remote interface elements and wherein theinstructions to display include instructions to access a device profileincluding information indicative of positioning and labeling of thevirtual remote interface elements.
 7. The computer readable storagemedia of claim 6 wherein the device profile further includes informationindicative of the device-function code.
 8. A customer premises equipment(CPE) for use within a client configuration of a multimedia contentdistribution network, comprising: a processor; a network interfaceconfigured to receive multimedia content; a decoder configured to decodemultimedia content received via the network; and processor readablestorage media, accessible to the processor, including processorexecutable instructions, the instructions including instructions for:responsive to an initial signal from a remote control device, providinga virtual remote device selection table to a display, wherein thevirtual remote device selection table includes a plurality of objectsrepresenting respective remotely controllable electronic devices;responsive to detecting a selection of one of the plurality of objects,accessing a device profile and providing a virtual remote deviceinterface for the respective electronic device to the display, whereinthe virtual remote device interface includes a plurality of selectableelements representing device-function codes for the electronic device;and responsive to detecting selection of one of the selectable elements,sending the respective device-function code to the electronic device. 9.The CPE of claim 8, wherein the CPE is a set top box configured toprocess content received via an Internet protocol television network.10. The CPE of claim 8, wherein the device profile includes informationindicative of the device-function codes corresponding to the selectableelements.
 11. The CPE of claim 10, wherein the profile further includesinformation indicative of positioning and labeling of the selectableelements.
 12. The CPE of claim 10, further comprising instructions forinitiating wireless transmission of a signal indicative of thedevice-function code.
 13. The CPE of claim 12, wherein initiating thewireless transmission comprises initiating the wireless transmissionaccording to a wireless transmission technology indicated in a devicetable.
 14. The CPE of claim 8, further comprising instructions forreceiving device profile updates via an Internet protocol network andfor updating the device profiles.
 15. A method for providing virtual,universal remote control, comprising: detecting a select signal from aremote control device while a virtual remote device interface isdisplaying; determining an element of a virtual remote interfaceindicated by the select signal; determining a device-function codecorresponding to the indicated element; and providing thedevice-function code to a remote control code transmitter.
 16. Themethod of claim 15, further comprising wirelessly transmitting thedevice-function code to a region in proximity to the code transmitter,wherein the transmitting includes transmitting via a technology selectedfrom the group consisting of infrared, radio frequency, wirelessfidelity, and Bluetooth.
 17. The method of claim 15, further comprisingdetecting a select signal from the remote control device while a virtualdevice selection interface is displaying and determining an electronicdevice corresponding to an object of the virtual remote device selectioninterface.
 18. The method of claim 15, further comprising wirelesslytransmitting the device-function code to a region in which theelectronic device is located.
 19. The method of claim 15, furthercomprising responding to a directional signal from the remote controldevice by visually indicating a different element as the element to beselected.
 20. A virtual universal remote control service, comprising:enabling a client device to acquire remote control profiles for aplurality of electronic devices; enabling a user to select a remotelycontrollable electronic device from a plurality of such devices;responsive to the user selecting a remotely controllable electronicdevice, displaying a virtual remote control interface for the electronicdevice, the virtual remote control interface including a plurality ofselectable elements; and responsive to the user selecting an element,generating a device-function code for a device function associated withthe selected element.
 21. The service of claim 20, further comprisingwirelessly transmitting a signal indicative of the device-function codeto the selected electronic device.